package controllers;

import java.io.File;
import java.io.IOException;
import java.lang.reflect.Constructor;
import java.util.Date;
import java.util.Locale;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.WorkbookSettings;
import jxl.biff.CountryCode;
import jxl.read.biff.BiffException;
import models.ArcadiaLog;
import models.ContactoEmpresa;
import models.HistorialContactoCargo;
import models.Import;
import models.Localidad;
import models.Organizacion;
import models.OrigenDato;
import models.Rama;
import models.Rubro;
import models.Sector;
import models.Subrubro;
import play.Logger;
import play.data.binding.Binder;
import play.db.Model;
import play.db.jpa.Blob;
import play.mvc.With;
import utils.ArcadiaConstants.TIPO_ENTIDAD;
import utils.ArcadiaConstants.TIPO_PERSONA;

@With(Secure.class)
@CRUD.For(value = Import.class)
public class ImportProcess extends ArcadiaCRUD {

	public static void create() throws Exception {
		ObjectType type = ObjectType.get(getControllerClass());
		notFoundIfNull(type);
		Constructor<?> constructor = type.entityClass.getDeclaredConstructor();
		constructor.setAccessible(true);
		Model object = (Model) constructor.newInstance();
		Binder.bindBean(params.getRootParamNode(), "object", object);

		try {
			XLSExportHelper.read(((Import) object).base);
		} catch (Exception e) {
			Logger.error(e, "File Import error");
			flash.error("Error en la importación de datos. Consulte con su proveedor.");
			render("CRUD/blank.html", type, object);
		}

		flash.success(play.i18n.Messages.get("Importación de datos finalizada correctamente."));
		redirect(request.controller + ".blank");
	}

	

}
